Predavanja i vežbe iz računarstva i informatike za učenike gimnazije

Računarstvo i informatika za učenike gimnazije

1. Razred

2. Razred

3. Razred

4. Razred

 

 

Lokalne i globalne promenljive

 

 

 

Procedure i funkcije obično nazivamo potprogramima. Zbog toga, kada kažemo potprogram mislimo bilo na proceduru bilo na funkciju. Jasno je da su potprogrami delovi nekog programa.

U potprogramu svaki opisani objekat se smatra lokalnim za taj potprogram i može se koristiti samo u okviru tog potprograma. Daklem svaki takav objekat (npr. promenljiva, konstanta, tip ... ) je nedostupan glavnom programu iz kojeg se taj potprogram poziva. Opštije, pošto potprogram može biti opisan i u okviru nekog potprograma, lokalne promenljive su nedostupne spoljašnjem potprogramu. Svaki objekat koji je opisan u osnovnom (glavnom) programu se smatra globalnim i može se koristiti ne samo u glavnom programu već i u bilo kom potprogramu. Direktan pristup globalnim objektima (pre svega promenljivama) iz potprograma se ne preporučuje, već se preporučuje pristup tim promenljivama kroz parametre potprograma.

Primer lokalne promenljive:

procedure p;
var a: integer;
begin 
...
end;

Primer Globalne promenljive:
var a: integer;
procedure p;
begin 
...
end;

Šta izvršavaju sledeći programi ?

Program P1;
var x:integer;

Procedure promena;
begin
 x:=1;
end;

BEGIN
x:=0;
promena;
writeln (x); {1}
END.


Program P2;
var x:integer;

Procedure promena;
var x:integer;
begin
 x:=1;
end;

BEGIN
x:=0;
promena;
writeln (x); {0}
END.

 
Iz gornjih primera vidimo da :
1. procedure ne moraju imati parametre,
2. procedure za razliku od funkcija ne vraćaju neku vrednost,
3. Ako u potprogramu postoji promenljiva koja ima isto ime kao i neka globalna promenljiva, onda se ta globalna promenljiva ne može videti iz tog potprograma.

Primeri procedura

Procedure mogu da vrate neku vrednost u glavni program ali kroz parametre. Za sada ćemo samo reći: ako neki potprogram treba da vrati neku vrednost u glavni program kroz parametar, onda taj parametar mora biti naveden sa rezervisanom rečju var. A kasnije ćemo videti tačnu razliku između vrednosnih i promenljivih parametara.

Napisati proceduru kojom se izračunavaju minimum i maksimum na osnovu dva zadata cela broja.

Procedure minimax (a,b:integer; Var min,max:integer);
Begin
 if a>b then Begin 
              min:=b;
              max:=a;
             End
        else Begin
              min:=a;
              max:=b;
             End;
 End;


Primer 2.

Procedure razmeni (var a,b:real);
Var t:real;
Begin
 t:=a;
 a:=b;
 b:=t;
End;

 



 

 

© 2010 Dragoljub Perišić 



 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



 

 

 

©2017 Dragoljub Perišić